This invention relates generally to the field of packet switching and, more specifically, to packet switch overload control when real-time measurement of buffer occupancy is not possible.
Communication transmission technology has evolved from analog voice and data circuits to 64 kbps pulse code modulated (PCM) encoded voice and data circuits to packetized voice and data. In fact, much of today""s communication traffic is transmitted in the form of packets. In packet transmission, the voice stream or the data is broken into predetermined amounts of data (called xe2x80x9ccontentxe2x80x9d in the art), encapsulated with protocol data and transmitted through the packet network, which includes traversing one or more packet gateways or packet switches. The content is then reassembled at the destination and delivered to the end user.
As packet traffic increases, the possibility of overload in the packet gateways and switches increases dramatically. In a typical packet switch, packets are moved from one buffer (a xe2x80x9creceivexe2x80x9d buffer) to one of a plurality of xe2x80x9ctransmitxe2x80x9d buffers. The buffer size is engineered to be a function of the load, the packet traffic statistics (such as packet sizes) and expected capacity of the output channel.
It is known, however, that transmission of packet data is xe2x80x9cburstyxe2x80x9d in nature. That is, packets do not arrive in a nice, orderly manner; packets arrive in bunches and the arrival period is often fractal in nature. As a result, it is possible for the transmit buffer, the receive buffer, or both, to overflow. Such overflow causes delay in delivery of the packets, which, in the case of data, results in lost packets and generally requires packet retransmission. In the case of packetized voice, such overflow causes voice quality degradation. Buffer overflow is generally called xe2x80x9coverloadxe2x80x9d.
One common method to monitor whether a packet switch is in overload is to count the number of packets queued in the transmit buffer. In many cases, however, it is not possible to count the number of queued packets because of the implementation of the buffer (i.e., the buffer is implemented inside of custom hardware). Usually, the only known factor is whether the buffer is empty or non-empty. Another common method to ameliorate overload is to give one packet stream priority over the others by giving or assigning one stream a higher priority and the other(s) a lower priority. For example, packetized voice is usually assigned a higher priority over packetized data to ensure timely delivery of the delay-sensitive voice packets. However, a priority system may cause the one or more lower priority streams to overflow when the higher priority stream is particularly bursty. As stated above, such overflow cannot be detected. Therefore, a problem in the art is that a packet switch may be in overload without the possibility of detection.
This problem is solved and a technical advance is achieved in the art by a system and method that implements fuzzy-logic based overload detection and correction for a packet gateway. According to a method of this invention, a distribution curve is developed regarding the packet switch""s load at a desired maximum packet rate. According to further aspects of the invention, a determination is made if a first packet stream is excessively bursty. Further, the processing rates of all packet streams are measured. An overload possibility value is manipulated according to the burstyness of the first packet stream and a position on the distribution curve that the processing rates maps to. If the overload possibility value is above a threshold, then an overload condition is deemed to exist and packets are dropped from the transmit stream. This non-deterministic overload control runs at least once during the processing of the receive packet stream. Further, a transmit counter guarantees that the fuzzy-logic overload control runs during extended bursts.